// https://nuxt.com/docs/api/configuration/nuxt-config
import Components from 'unplugin-vue-components/vite'
import { AntDesignVueResolver } from "unplugin-vue-components/resolvers";
export default defineNuxtConfig({
    // 全局 SSR 配置（可选）
    // 路由规则配置
    routeRules: {
        // 为首页配置客户端渲染
        '/': { ssr: false },
        // 其他页面保持 SSR
        '/**': { ssr: true }
    },
    nitro: {
        compressPublicAssets: true // 启用对公共资源的压缩
    },
    modules: [
        '@nuxt/ui',
        '@pinia/nuxt',
        // 添加延迟水合插件
        ['nuxt-delay-hydration', {
            // 开发环境下开启调试模式
            debug: process.env.NUXT_PUBLIC_ENV === 'development',

            // 水合模式：mount（推荐）
            mode: 'mount',

            // 排除路径 - 根据您的项目调整
            exclude: [
                // 保留您图片中的排除路径a
                '/user/**',
                '/invite',
                '/webstore',
                '/auth-landing',
                '/code-interpreter',
                '/share/chat/**',
                '/best-gpts/arvin-gpts/**',

                // 添加您项目的特定路径
                '/profile', // 个人中心页面
                '/api/**' // API 路由
            ]
        }]
    ],

    pinia: {
        autoImports: ['defineStore']
    },
    // 如果使用 TypeScript，确保包含以下配置
    typescript: {
        typeCheck: false,
        tsConfig: {
            compilerOptions: {
                types: ['@pinia/nuxt']
            }
        }
    },

    // Vite 构建优化配置 - 专注于核心功能
    vite: {
        plugins: [
            // 保留现有的按需引入组件配置
            Components({
                resolvers: [AntDesignVueResolver({
                    importStyle: 'less'
                })]
            })
        ],

        // CSS 预处理配置
        css: {
            preprocessorOptions: {
                less: {
                    modifyVars: {
                        'primary-color': '#ea6f5a'
                    },
                    javascriptEnabled: true,
                }
            },

        },

        // SSR 配置
        ssr: {
            noExternal: ['ant-design-vue',
                'dayjs' // 将 dayjs 添加到 SSR 不外部化的列表
            ]
        },



    },


    // 运行时配置
    runtimeConfig: {
        // 私有配置（仅服务端可用）
        apiSecret: process.env.NUXT_API_SECRET || 'default-secret',
        public: {
            env: process.env.NODE_ENV || 'development'
        }
    },

    devtools: { enabled: true }
})